1. Technical Field
This application generally relates to data storage, and more particularly to techniques used in connection with processing I/O requests.
2. Description of Related Art
Computer systems may include different resources used by one or more host processors. Resources and host processors in a computer system may be interconnected by one or more communication connections. These resources may include, for example, data storage devices such as those included in the data storage systems manufactured by EMC Corporation. These data storage systems may be coupled to one or more host processors and provide storage services to each host processor. Multiple data storage systems from one or more different vendors may be connected and may provide common data storage for one or more host processors in a computer system.
A host processor may perform a variety of data processing tasks and operations using the data storage system. For example, a host processor may perform basic system I/O operations in connection with data requests, such as data read and write operations.
Host processor systems may store and retrieve data using a storage device containing a plurality of host interface units, disk drives, and disk interface units. Such storage devices are provided, for example, by EMC Corporation of Hopkinton, Mass. and disclosed in U.S. Pat. No. 5,206,939 to Yanai et al., U.S. Pat. No. 5,778,394 to Galtzur et al., U.S. Pat. No. 5,845,147 to Vishlitzky et al., and U.S. Pat. No. 5,857,208 to Ofek. The host systems access the storage device through a plurality of channels provided therewith. Host systems provide data and access control information through the channels to the storage device and storage device provides data to the host systems also through the channels. The host systems do not address the disk drives of the storage device directly, but rather, access what appears to the host systems as a plurality of logical disk units, logical devices, or logical volumes (LVs). The logical disk units may or may not correspond to the actual disk drives. Allowing multiple host systems to access the single storage device unit allows the host systems to share data stored therein.
In connection with data storage, a variety of different technologies may be used. Data may be stored on magnetic disk devices (as described above), tape devices and/or flash memory devices. In connection with flash memory devices, two technologies used may be referred to as single level cell (SLC) and multi-level cell (MLC). Both SLC and MLC flash devices may fail primarily due to wear out or usage after performing a certain number of programming or erase-write cycles to store data on the flash memory devices. For example, a flash memory device that uses NAND flash memory and is an SLC device is expected to perform a specified number of erasures of a cell. After performing the specified number of erasures to the cell, that cell is expected to fail or wear out. Cells wear out in that they cannot hold the electrical charge that defines the value of the bit stored when programming or writing to the cell. Failure of a cell may be detected when attempting to subsequently read data therefrom. As such, different techniques may be used when performing operations in connection with the flash memory device. One technique is to use an error correction code (ECC) to allow recovery of data upon the occurrence of a write failure. Reading a data value from a worn out cell results in an incorrect data value being read as may be determined in connection with performing data integrity processing internal to the flash memory device, for example, using the ECC. Another technique is wear leveling which attempts to balance or evenly distribute writes across the physical device locations. Thus, when performing a write operation to a flash memory device, the write operation may be performed to a logical location on the device which is then mapped to a physical location on the device. With wear leveling and flash memory devices, the particular physical location for the same logical location may change in accordance with a mapping of virtual to physical locations in order to achieve the desired equal distribution of writes across physical locations of the device.
Different costs and characteristics are associated with different memory technologies such as, for example, each of the SLC and MLC flash memory technologies. Devices using SLC technology typically provide higher durability (e.g., larger number of erase-write cycles expected prior to failure) and better random write performance than MLC devices. However, SLC devices are also more expensive and may be characterized as providing less storage density in comparison to MLC devices.